From: Giovanni Campagna Date: Thu, 28 Feb 2013 22:17:47 +0000 (+0100) Subject: Layout: don't minimize fullscreen windows that are focused X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~4613 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=b6bf8d5b2d67c152496570ba920c5a5f75b3160d;p=gnome-shell.git Layout: don't minimize fullscreen windows that are focused Windows can sometimes be focused, or appear to be focused, without being at the exact top of the stack, for example in the case of override-redirect windows, or with attached modal dialogs. In that case, we should not try to minimize them (as it creates a loop that makes it impossible to restore the window) https://bugzilla.gnome.org/show_bug.cgi?id=694905 --- diff --git a/js/ui/layout.js b/js/ui/layout.js index 8fdf57a7d..8fe1eb7d3 100644 --- a/js/ui/layout.js +++ b/js/ui/layout.js @@ -923,7 +923,7 @@ const LayoutManager = new Lang.Class({ if (primaryWasInFullscreen != this.primaryMonitor.inFullscreen) { let windows = this._getWindowActorsForWorkspace(global.screen.get_active_workspace()); - for (let i = 0; i < windows.length - 1; i++) { + for (let i = 0; i < windows.length; i++) { let window = windows[i]; let metaWindow = window.meta_window; @@ -935,8 +935,9 @@ const LayoutManager = new Lang.Class({ if (!metaWindow.is_on_primary_monitor()) continue; - // Minimize monitor sized windows - if (metaWindow.is_monitor_sized()) + // Minimize monitor sized windows that are not focused + if (metaWindow.is_monitor_sized() && + !metaWindow.appears_focused) metaWindow.minimize(); } this.emit('primary-fullscreen-changed', this.primaryMonitor.inFullscreen);